// bool, Obj this, Obj other

Unit me;
Building bld;

me = this.AsUnit();
bld = other.AsBuilding();

if(!me.IsValid()) return false;
if(!me.IsAlive()) return false;
if(!bld.IsValid()) return false;

if(!bld.IsHeirOf("Inn")) return false;

if(GetInnState(bld)==1 && me.GetParty()) return true;

return false; //in all other cases

